A SIM card is a removable device installed in all GSM cell phones and also in many other types of cell phones. The legacy SIM card is used to uniquely identify the phone subscriber. It also has additional capabilities such as a phone book storage and SMS messages storage.
High Capacity SIM cards have been recently introduced. This type of SIM card is fully compatible with the legacy SIM card but has additional, large capacity, low cost Flash storage (as compared to the legacy SIM using EEPROM technology for storage). In addition, a High Capacity SIM card has two interfaces, the legacy SIM interface defined by the ISO 7816 standard, and an additional high speed interface, such as the USB or the MultiMediaCard (MMC) interface.
The legacy SIM manages its own file system in its EEPROM storage. This file system is transparent to the mobile phone application accessing the SIM. According to the ISO protocol, the application provides the SIM with the file name and some additional attributes and then either provides the data in the file to the SIM (write), or gets it from the SIM (read). The SIM is responsible for managing the internal file system. Independently, using a High Capacity SIM, a phone-based application can create a file system on the flash storage using the high speed interface for data transfer; this secondary file system is transparent to the ISO protocol-based file storage.
FIG. 1 provides a block diagram of a system including a host device 10A (typically a cell phone) operatively coupled with a high capacity SIM card 22A via two different interfaces: ISO 7816 interface 50 is used for legacy SIM functions and MultiMediaCard (MMC) interface 52 is typically used for storage access. Both the host 10A as well as the SIM 22A may include control circuitry (not shown), for example, a microprocessor (not shown) for executing code, an internal data bus (not shown), ROM (not shown) for storing the code executed by the CPU (not shown) and RAM (not shown) for storing software variables.
SIM Card 22A includes two types of non-volatile storage: EEPROM 54 (i.e. a small non-volatile storage for storing permanent data accessed on a byte-by-byte level) and flash memory storage 20 for storing large amounts of data that is accessed on a sector level. Furthermore, host device 10A may communicate with the SIM 22A via either or both of two independent interfaces—a legacy ISO 7816 interface 50 (used for legacy SIM functions) and a high-speed interface 52 (for example, a MMC interface 52 or a USB interface or any other high-speed interface—typically used for storage access). Thus, there are two communications links illustrated in FIG. 1A—a legacy ISO 7816 protocol communications link 70 and a high speed (for example, MMC protocol) communications link 72. Data received by SIM 22A via the legacy ISO interface 70 is stored in the legacy EEPROM 54, while data received via the high speed interface 52 is stored in the much larger and faster flash memory 20.
As illustrated in FIG. 1, a plurality of software applications (i.e. application A 12 and application B 14) execute independently on the host 10A. In one particular example, Application A 12 is a legacy SIM phone book application and Application B 14 is Microsoft Outlook®. There is no connection between the two applications—each manages its data separately.
FIGS. 1B-1C illustrate prior art routines for writing data to the SIM card 22A and reading back the stored data. As illustrated in FIGS. 1B-1C, two completely independent routines are used—a first routine using the legacy ISO interface 50 and the legacy EEPROM storage 54 (i.e. steps S101, S105 and S109—see the left side of FIG. 1C) and a second routine using the high speed interface 52 and the larger, faster flash memory 20 (i.e. steps S121, S125 and S129—see the right side of FIG. 1C).
It would be highly desirable to have a technique where data written using one of the interfaces (i.e. one of ISO interface 50 and the high speed interface 52) can be read back using the other of the interfaces. This would be useful, for example, for facilitating data accessibility. It would also be desirable to take advantage of the flash storage and to use a portion of the flash memory to extend the capacity of the EEPROM-based file system.